/*
* 存放各种共用的属性和函数
* 弹窗组件，创建方法，编辑方法，查看方法
* 删除方法
* 翻页方法
* 刷新方法
* */

import {ref,inject} from "vue"
import type {Ref} from "vue"

interface MyType {
    [propName: string]: any
}

// 弹窗钩子
const useEdit = () => {
    const Editref: Ref = ref<HTMLElement | null>(null)
    const handleEdit = (item: MyType) => {
        Editref.value.init("edit", {...item})
    }
    // 点击查看
    const handleView = (item: MyType) => {
        Editref.value.init("view", {...item})
    }
    // 点击新建
    const handleCreate = () => {
        Editref.value.init("add")
    }
    return {handleEdit, handleView, handleCreate, Editref,}
}
// 分页钩子
const usePage = () => {
    const fenyeref: Ref = ref<HTMLElement | null>(null)
    // 点击查询
    const handleSearch = () => {
        fenyeref.value.changeoption({page: 1})
    }
    // 点击重置
    // const handleReset = () => {
    //     Object.keys(formValue.value).forEach(item => {
    //         formValue.value[item] = null
    //     })
    //     handleSearch()
    // }
    //
    // const handlerefresh=(type:"add" | "edit" | "del",tableData:any[] = [])=>{
    //     if(type==="add"){
    //         fenyeref.value.changeoption({page:1})
    //     }else if(type==="edit"){
    //         fenyeref.value.changeoption({})
    //     }else if(type==="del"){
    //         const page = fenyeref.value.page
    //         if(page >1 && tableData.length ===1){
    //             fenyeref.value.changeoption({page:page-1})
    //         }
    //         fenyeref.value.changeoption({})
    //     }
    // }
    return {
        fenyeref,
        handleSearch,
        // handleReset,
        // handlerefresh,
    }
}

const useDelete = () => {
    const deletemodel = inject("delDialog")
    return deletemodel
}


export default {useEdit, useDelete, usePage}
